package com.qf.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.qf.mapper.DtsRoleMapper;
import com.qf.pojo.DtsRole;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * @author mkr
 * @version V1.0
 * @Project java2203-mkr
 * @Package com.qf.service
 * @Description:
 * @Date 2022/6/16 21:27
 */
@Service
public class RoleServiceImpl implements  RoleService {

    @Autowired
    private DtsRoleMapper dtsRoleMapper;

    @Override
    public Set<String> queryById(Integer[] ids) {
        //判断如果参数为null，直接返回空的角色名称
        if(ids == null || ids.length == 0){
            return new HashSet<String>();
        }
        //创建条件查询器
        QueryWrapper queryWrapper = new QueryWrapper();
        //查询条件：相当于where id in (1,2,3,4)
        queryWrapper.in("id", ids);
        //查询没有被删除的
        queryWrapper.eq("deleted", false);
        //查询启用的角色
        queryWrapper.eq("enabled", true);

        List<DtsRole> list = dtsRoleMapper.selectList(queryWrapper);

        //将list转换为shiro框架需要的set集合
        Set<String> roleSet = new HashSet<>();
        if (list != null){
            for (DtsRole role : list){
                roleSet.add(role.getName());
            }
        }
        return roleSet;
    }
}
